package com.zlx.module_base.base_api.module;

import androidx.lifecycle.LiveData;

import com.zlx.module_base.base_api.res_data.AddFriendBean;
import com.zlx.module_base.base_api.res_data.AuthenticationBean;
import com.zlx.module_base.base_api.res_data.BaseBean;
import com.zlx.module_base.base_api.res_data.BaseInfoBean;
import com.zlx.module_base.base_api.res_data.BeFocusedBean;
import com.zlx.module_base.base_api.res_data.ConsumptionBean;
import com.zlx.module_base.base_api.res_data.CountBean;
import com.zlx.module_base.base_api.res_data.DeleteFocusedBean;
import com.zlx.module_base.base_api.res_data.DeleteFriendBean;
import com.zlx.module_base.base_api.res_data.FocusedBean;
import com.zlx.module_base.base_api.res_data.FriendListBean;
import com.zlx.module_base.base_api.res_data.InviteUserBean;
import com.zlx.module_base.base_api.res_data.MsgBean;
import com.zlx.module_base.base_api.res_data.MsgBean2;
import com.zlx.module_base.base_api.res_data.MsgListBean;
import com.zlx.module_base.base_api.res_data.NatureBean;
import com.zlx.module_base.base_api.res_data.OccupationBean;
import com.zlx.module_base.base_api.res_data.RankListRes;
import com.zlx.module_base.base_api.res_data.UpdateUserBean;
import com.zlx.module_base.base_api.res_data.UpdateUserPostBean;
import com.zlx.module_base.base_api.res_data.UserInfo;
import com.zlx.module_base.base_api.res_data.UserLevelVoBean;
import com.zlx.module_network.bean.ApiResponse;

import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;

/**
 * Copyright (C)
 * FileName: ArticleApi
 * Author: Zlx
 * Email: 1170762202@qq.com
 * Date: 2020/9/17 10:48
 * Description: 体系api
 */
public interface UserApi {

    /**
     * 用户基本信息
     *
     * @return
     */
    @GET("appapi/user/getBaseInfo")
    LiveData<ApiResponse<BaseInfoBean>> getBaseInfo(@Header("token") String token);

    /**
     * 获取个人积分
     *
     * @return
     */
    @GET("lg/coin/userinfo/json")
    LiveData<ApiResponse<UserInfo>> getIntegral();

    /**
     * 获取个人积分列表
     *
     * @param page
     * @return
     */
    @GET("lg/coin/list/{page}/json")
    LiveData<ApiResponse<RankListRes>> listIntegral(@Path("page") int page);

    /**
     * 修改个人信息
     *
     * @return
     */
    @POST("appapi/user/updateUser")
    LiveData<ApiResponse<UpdateUserBean>> updateUser(@Header("token") String token,
                                                     @Body UpdateUserPostBean body
    );

    /**
     * 获取关注数量 粉丝数量 点赞数量
     *
     * @return
     */
    @GET("appapi/user/getCount")
    LiveData<ApiResponse<CountBean>> getCount(@Header("token") String token
    );


    /**
     * 关注列表
     *
     * @return
     */
    @GET("appapi/user/getFocusedList")
    LiveData<ApiResponse<FocusedBean>> getFocusedList(@Header("token") String token,
                                                      @Query("p") String p
    );

    /**
     * 粉丝列表
     *
     * @return
     */
    @GET("appapi/user/getBeFocusedList")
    LiveData<ApiResponse<BeFocusedBean>> getBeFocusedList(@Header("token") String token,
                                                          @Query("p") String p
    );

    /**
     * 女神认证
     *
     * @return
     */
    @GET("appapi/user/authentication")
    LiveData<ApiResponse<AuthenticationBean>> authentication(@Header("token") String token,
                                                             @Query("video") String video

    );

    /**
     * 交友属性列表
     *
     * @return
     */
    @GET("appapi/user/getNatureList")
    LiveData<ApiResponse<NatureBean>> getNatureList(@Header("token") String token

    );

    /**
     * 职业列表
     *
     * @return
     */
    @GET("appapi/user/getOccupationList")
    LiveData<ApiResponse<OccupationBean>> getOccupationList(@Header("token") String token

    );

    /**
     * 添加好友 ——添加伴侣
     *
     * @return
     */
    @POST("appapi/user/addOrDeleteFriend")
    LiveData<ApiResponse<BaseBean>> addOrDeleteFriend(@Header("token") String token
            , @Body DeleteFriendBean id
    );

    /**
     * 消息列表
     *
     * @return
     */
    @GET("appapi/user/getMsgList")
    LiveData<ApiResponse<MsgListBean>> getMsgList(@Header("token") String token
            , @Query("p") String page
    );

    /**
     * 消息详情
     *
     * @return
     */
    @GET("appapi/user/getMsg")
    LiveData<ApiResponse<MsgBean>> getMsg(@Header("token") String token
            , @Query("id") String id
    );

    /**
     * 消息详情
     *
     * @return
     */
    @GET("appapi/user/getMsg")
    LiveData<ApiResponse<MsgBean2>> getMsg2(@Header("token") String token
            , @Query("id") String id
    );

    /**
     * 好友申请验证
     *
     * @return
     */
    @POST("appapi/user/verifyAddFriend")
    LiveData<ApiResponse<BaseBean>> verifyAddFriend(@Header("token") String token
            , @Body AddFriendBean addFriendBean
    );

    /**
     * 获取我的伴侣列表
     *
     * @return
     */
    @GET("appapi/user/getFriendList")
    LiveData<ApiResponse<FriendListBean>> getFriendList(@Header("token") String token
    );

    /**
     * 关注或取消关注
     *
     * @return
     */
    @POST("appapi/user/addorDeleteFocused")
    LiveData<ApiResponse<BaseBean>> addorDeleteFocused(@Header("token") String token,
                                                       @Body DeleteFocusedBean deleteFocusedBean
    );

    /**
     * 我的等级相关信息
     *
     * @return
     */
    @GET("appapi/user/getUserLevelVo")
    LiveData<ApiResponse<UserLevelVoBean>> getUserLevelVo(@Header("token") String token
    );

    /**
     * 获取消费明细
     *
     * @return
     */
    @GET("appapi/user/getConsumption")
    LiveData<ApiResponse<ConsumptionBean>> getConsumption(@Header("token") String token
    );

    /**
     * 邀请记录
     *
     * @return
     */
    @GET("appapi/user/getInviteUser")
    LiveData<ApiResponse<InviteUserBean>> getInviteUser(@Header("token") String token
            , @Query("p") String p
    );


}
